package com.xbongbong.paas.constant;

import static com.xbongbong.paas.enums.ConditionEnum.ALLINCLUDE;
import static com.xbongbong.paas.enums.ConditionEnum.DYNAMIC;
import static com.xbongbong.paas.enums.ConditionEnum.EMPTY;
import static com.xbongbong.paas.enums.ConditionEnum.EQUAL;
import static com.xbongbong.paas.enums.ConditionEnum.GREATEREQUAL;
import static com.xbongbong.paas.enums.ConditionEnum.GREATERTHAN;
import static com.xbongbong.paas.enums.ConditionEnum.IN;
import static com.xbongbong.paas.enums.ConditionEnum.INCLUDE;
import static com.xbongbong.paas.enums.ConditionEnum.LESSEQUAL;
import static com.xbongbong.paas.enums.ConditionEnum.LESSTHAN;
import static com.xbongbong.paas.enums.ConditionEnum.LIKE;
import static com.xbongbong.paas.enums.ConditionEnum.NOEMPTY;
import static com.xbongbong.paas.enums.ConditionEnum.NOEQUAL;
import static com.xbongbong.paas.enums.ConditionEnum.NOIN;
import static com.xbongbong.paas.enums.ConditionEnum.NOLIKE;
import static com.xbongbong.paas.enums.ConditionEnum.RANGE;

/**
 * https://xbb.yuque.com/xbb/vsf9sv/hsq93o
 * https://alidocs.dingtalk.com/i/nodes/OmLa2Gg0l5BW74GR3kwNVvQAdYbnKEek?utm_source=search&utm_medium=search_knowledge&sideCollapsed=true
 * @author: wufeng
 * @date: 2018/9/5 19:48
 * @desrcption: 搜索条件常量
 */
public class ConditionConstant {

    /**
     * 时间规则：等于不等于，大于等于，小于等于，不为空，为空，选择范围，动态值；
     */
    public static final String[] DATETIME = {EQUAL.getSymbol(), NOEQUAL.getSymbol(), GREATEREQUAL.getSymbol(), LESSEQUAL.getSymbol(), NOEMPTY.getSymbol(), EMPTY.getSymbol(), RANGE.getSymbol(), DYNAMIC.getSymbol()};

    /**
     * 文本规则：等于，不等于，等于任意一个，不等于任意一个，包含，不包含，为空，不为空；
     */
    public static final String[] TEXT = {EQUAL.getSymbol(), NOEQUAL.getSymbol(), IN.getSymbol(), NOIN.getSymbol(), LIKE.getSymbol(), NOLIKE.getSymbol(),EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * 下拉框规则：等于，不等于，等于任意一个，不等于任意一个，包含，不包含，为空，不为空；
     */
    public static final String[] COMBO = {EQUAL.getSymbol(), NOEQUAL.getSymbol(), IN.getSymbol(), NOIN.getSymbol(), /*LIKE.getSymbol(), NOLIKE.getSymbol(),*/EMPTY.getSymbol(), NOEMPTY.getSymbol()};

    /**
     * 下拉框规则：等于；
     */
    public static final String[] COMBO_NUM = {EQUAL.getSymbol()};

    /**
     * 单选按钮：等于，不等于，等于任意一个，不等于任意一个，包含，不包含，为空，不为空；
     */
    public static final String[] RADIO_GROUP = {EQUAL.getSymbol(), NOEQUAL.getSymbol(), IN.getSymbol(), NOIN.getSymbol(), LIKE.getSymbol(), NOLIKE.getSymbol(),EMPTY.getSymbol(), NOEMPTY.getSymbol()};

    /**
     * 成员多选：包含任意一个，同时包含，等于，为空，不为空；
     */
    public static final String[] USER_GROUP = {INCLUDE.getSymbol(), ALLINCLUDE.getSymbol(), EQUAL.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * 部门多选：包含任意一个，同时包含，等于，为空，不为空；
     */
    public static final String[] DEPT_GROUP = {INCLUDE.getSymbol(), ALLINCLUDE.getSymbol(), EQUAL.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * 成员单选：等于，不等于，等于任意一个，不等于任意一个，为空，不为空
     */
    public static final String[] USER = {EQUAL.getSymbol(), NOEQUAL.getSymbol(), IN.getSymbol(), NOIN.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * 部门单选：等于，不等于，等于任意一个，不等于任意一个，为空，不为空
     */
    public static final String[] DEPT = {EQUAL.getSymbol(), NOEQUAL.getSymbol(), IN.getSymbol(), NOIN.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol()};

    /**
     * 地址规则/定位：属于，不属于，为空，不为空
     */
    /**BELONG.getSymbol(), NOBELONG.getSymbol(), */
    public static final String[] ADDRESS = {EQUAL.getSymbol(),NOEQUAL.getSymbol(),LIKE.getSymbol(),NOLIKE.getSymbol(),EMPTY.getSymbol(),NOEMPTY.getSymbol()};

    /**
     * 多行文本：包含，不包含，为空，不为空；
     */
    public static final String[] TEXTAREA = {EMPTY.getSymbol(), NOEMPTY.getSymbol(), LIKE.getSymbol(), NOLIKE.getSymbol()};

    /**
     * 数字规则：大于等于，等于，小于等于，不为空，为空，选择范围，不等于，大于，小于；
     */
    public static final String[] NUM = {GREATEREQUAL.getSymbol(), LESSEQUAL.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol(),
            GREATERTHAN.getSymbol(), LESSTHAN.getSymbol(), EQUAL.getSymbol(), NOEQUAL.getSymbol(), RANGE.getSymbol()};

    /**
     * 复选框规则：包含任意一个，同时包含，等于，为空，不为空；
     */
    public static final String[] CHECKBOX_GROUP = {INCLUDE.getSymbol(), ALLINCLUDE.getSymbol(), EQUAL.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * 下拉复选框规则：包含任意一个，同时包含，等于，为空，不为空；
     */
    public static final String[] COMBO_CHECK = {INCLUDE.getSymbol(), ALLINCLUDE.getSymbol(), EQUAL.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol()};

    /**
     * 附件：为空，不为空
     */
    public static final String[] UPLOAD = {EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * 图片：为空，不为空
     */
    public static final String[] IMAGE = {EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * 定位：为空，不为空
     */
    public static final String[] LOCATION = {EMPTY.getSymbol(), NOEMPTY.getSymbol()};

    /**
     * 创建人：等于，不等于，等于任意一个，不等于任意一个，为空，不为空
     */
    public static final String[] CREATORID = {EQUAL.getSymbol(), NOEQUAL.getSymbol(), IN.getSymbol(), NOIN.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol()};

    /**
     * 创建时间：大于等于，小于等于，选择范围
     */
    public static final String[] ADDTIME = {GREATEREQUAL.getSymbol(), LESSEQUAL.getSymbol(),  RANGE.getSymbol()};

    /**
     * 更新时间：大于等于，小于等于，选择范围
     */
    public static final String[] UPDATETIME = {GREATEREQUAL.getSymbol(), LESSEQUAL.getSymbol(), RANGE.getSymbol()};
    /**
     * 所属部门：等于，不等于，等于任意一个，不等于任意一个，为空，不为空
     */
    public static final String[] DEPARTMENTID = {EQUAL.getSymbol(), NOEQUAL.getSymbol(), IN.getSymbol(), NOIN.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol()};

    /**
     * ALLINCLUDE 类型删除多hasChild查询影响效率
     * 拥有者：包含任意一个，同时包含，等于，为空，不为空；
     */
//    public static final String[] OWNERID = {INCLUDE.getSymbol(), ALLINCLUDE.getSymbol(), EQUAL.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    public static final String[] OWNERID = {INCLUDE.getSymbol(), EQUAL.getSymbol()};

    /**
     *
     * ALLINCLUDE 类型删除多hasChild查询影响效率
     * 协同人：包含任意一个，同时包含，等于，为空，不为空；
     */
    public static final String[] COUSERID = {INCLUDE.getSymbol(), EQUAL.getSymbol()/*, EMPTY.getSymbol(), NOEMPTY.getSymbol()*/};

    /**
     * 流水号：等于，不等于，等于任意一个，不等于任意一个，包含，不包含，为空，不为空；
     */
    public static final String[] SERIALNO = {EQUAL.getSymbol(), NOEQUAL.getSymbol(), IN.getSymbol(), NOIN.getSymbol(), LIKE.getSymbol(), NOLIKE.getSymbol(),EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * 关联业务选择：等于，不等于，等于任意一个，不等于任意一个，为空，不为空；
     */
    public static final String[] LINK_BUSINESS_SINGLE = {EQUAL.getSymbol(), NOEQUAL.getSymbol(), IN.getSymbol(), NOIN.getSymbol(),EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * 关联业务选择：等于任意一个；
     */
    public static final String[] LINK_BUSINESS_MULTI = { IN.getSymbol()};
    /**
     * 联系电话：等于，不等于，等于任意一个，不等于任意一个，包含，不包含，为空，不为空；
     */
    public static final String[] CONTACT_NUMBER = {EQUAL.getSymbol(), NOEQUAL.getSymbol(), IN.getSymbol(), NOIN.getSymbol(),LIKE.getSymbol(),NOLIKE.getSymbol(),EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * 产品：包含任意一个，为空，不为空；
     */
    public static final String[] SELECT_PRODUCT = {INCLUDE.getSymbol()};
    /**
     * 采购合同：包含任意一个，为空，不为空；
     */
    public static final String[] SELECT_PURCHASE = {INCLUDE.getSymbol()};
    /**
     * 合同订单：包含任意一个，为空，不为空；
     */
    public static final String[] SELECT_CONTRACT = {INCLUDE.getSymbol()};
    /**
     * 规格：包含，不包含，为空，不为空；
     */
    public static final String[] SPECIFICATION = {LIKE.getSymbol(),NOLIKE.getSymbol(),EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * 富文本：包含，不包含，为空，不为空；
     */
    public static final String[] RICH_TEXT_EDITOR = {LIKE.getSymbol(),NOLIKE.getSymbol(),EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * 生日：大于等于，等于，小于等于，不为空，为空，选择范围，不等于；
     */
    public static final String[] BIRTHDAY = {EQUAL.getSymbol()};
    /**
     * star：等于，不等于，为空，不为空；
     */
    public static final String[] STAR = {EQUAL.getSymbol(),NOEQUAL.getSymbol(),EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * 更新时间：大于等于，小于等于，不为空，为空，选择范围
     */
    public static final String[] ENDTIME = {GREATEREQUAL.getSymbol(), LESSEQUAL.getSymbol(), NOEMPTY.getSymbol(), EMPTY.getSymbol(), RANGE.getSymbol()};    /**
     * 更新时间：大于等于，小于等于，不为空，为空，选择范围
     */
    public static final String[] CLOSETIME = {GREATEREQUAL.getSymbol(), LESSEQUAL.getSymbol(), NOEMPTY.getSymbol(), EMPTY.getSymbol(), RANGE.getSymbol()};
    /**
     * 工单超时：等于
     */
    public static final String[] WORK_ORDER_TIME_OUT = {EQUAL.getSymbol()};
    /**
     * 工单状态：等于
     */
    public static final String[] STATUS = {EQUAL.getSymbol()};
    /**
     * 工单阶段：等于
     */
    public static final String[] STAGE_ID = {EQUAL.getSymbol()};
    /**
     * 工单阶段状态：等于
     */
    public static final String[] NUM_3 = {EQUAL.getSymbol()};
    /**
     * 文本规则：等于，不等于，等于任意一个，不等于任意一个，包含，不包含，为空，不为空；
     */
    public static final String[] TEXT_CHECK = {EQUAL.getSymbol(), NOEQUAL.getSymbol(), IN.getSymbol(), NOIN.getSymbol(), LIKE.getSymbol(), NOLIKE.getSymbol(),EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * 时间规则：大于等于，等于，小于等于，不为空，为空，选择范围，不等于；
     */
//    public static final String[] LAST_CONNECT_TIME = {GREATEREQUAL.getSymbol(), LESSEQUAL.getSymbol(), NOEMPTY.getSymbol(), EMPTY.getSymbol(), RANGE.getSymbol()};

    /**
     * 数字规则：大于等于，等于，小于等于，不为空，为空，选择范围，不等于，大于，小于；
     */
    public static final String[] PRODUCT_STOCK = {GREATEREQUAL.getSymbol(), LESSEQUAL.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol(),
            GREATERTHAN.getSymbol(), LESSTHAN.getSymbol(), EQUAL.getSymbol(), NOEQUAL.getSymbol(), RANGE.getSymbol()};
    /**
     * 产品分类规则：等于；
     */
    public static final String[] CATEGORY_ID = {EQUAL.getSymbol()};
    /**
     * 流程用，创建人部门
     */
    public static final String[] CREATOR_DEPT = {INCLUDE.getSymbol()};

    /**
     * 公海分组-省，规则：等于，不等于，等于任意一个，不等于任意一个，包含，不包含，为空，不为空；
     */
    public static final String[] PUBLIC_GROUP_PROVINCE = {EQUAL.getSymbol(), NOEQUAL.getSymbol(), IN.getSymbol(), NOIN.getSymbol(), LIKE.getSymbol(), NOLIKE.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol()};

    /**
     * 关联数据 条件：等于，不等于，等于任意一个，不等于任意一个，为空，不为空
     */
    public static final String[] LINK_DATA = {EQUAL.getSymbol(), NOEQUAL.getSymbol(), IN.getSymbol(), NOIN.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * 关联数据多选 条件：等于，包含任意一个，同时包含，为空，不为空
     */
    public static final String[] LINK_DATA_MULTI = {INCLUDE.getSymbol(), ALLINCLUDE.getSymbol(), EQUAL.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol()};

    public static final String[] SWITCH = {EQUAL.getSymbol()};
    public static final String[] BATCH = {EQUAL.getSymbol()};
    public static final String[] SEQ = {EQUAL.getSymbol()};

    public static final String[] AREA = {EQUAL.getSymbol()};

    public static final String[] PURCHASEABLE_GOODS = {EQUAL.getSymbol()};

    public static final String[] CHECK_DATE = {RANGE.getSymbol()};
    /**
     *  等于 ,包含任意一个,同时包含,为空,不为空
     */
    public static final String[] LABEL = {EQUAL.getSymbol(), INCLUDE.getSymbol(), ALLINCLUDE.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * 等于
     */
    public static final String[] SCORE_RANGE = {EQUAL.getSymbol()};
    /**
     * 等于
     */
    public static final String[] BUSINESS_TYPE = {EQUAL.getSymbol()};
    /**
     * 阶段推进器规则：等于，不等于，等于任意一个，不等于任意一个，包含，不包含，为空，不为空；
     */
    public static final String[] STAGE_THRUSTER = {EQUAL.getSymbol(), NOEQUAL.getSymbol(), IN.getSymbol(), NOIN.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol()};

    /**
     * 阶段比例：大于等于，等于，小于等于，不为空，为空，选择范围，不等于，大于，小于；
     */
    public static final String[] STAGE_RATIO = {GREATEREQUAL.getSymbol(), LESSEQUAL.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol(),
            GREATERTHAN.getSymbol(), LESSTHAN.getSymbol(), EQUAL.getSymbol(), NOEQUAL.getSymbol(), RANGE.getSymbol()};

    /**
     * 公海分组：等于，不等于,不为空，为空；
     */
    public static final String[] PUBLIC_GROUP = {EQUAL.getSymbol(),  NOEQUAL.getSymbol(), EMPTY.getSymbol(), NOEMPTY.getSymbol()};
    /**
     * NODE_ID 规则：等于，不等于，等于任意一个，不等于任意一个，包含，不包含；
     */
    public static final String[] NODE_ID = {EQUAL.getSymbol(), NOEQUAL.getSymbol(), IN.getSymbol(), NOIN.getSymbol(), /*LIKE.getSymbol(), NOLIKE.getSymbol(),EMPTY.getSymbol(), NOEMPTY.getSymbol()*/};

}
